1. Field of the Invention
The present invention relates to a method, system, computer storage device, and storage area network for maintaining a communication path from a host to a storage subsystem in a network.
2. Related Art
A Storage Area Network (SAN) is a high speed communication network or a subnetwork, aiming to provide data transfer between a server and a storage system. As a solution for configuring networked storage, SAN establishes coupling between a server and a storage device through a dedicated Fiber Channel switch, and the simplest coupling is a connection relationship. SAN allows real isolation of the storage device from the server, such that storage becomes a resource that can be shared among all servers. The storage device in SAN is one or more disk devices for storing computer data. These disks generally refer to a disk array, which is also called a storage subsystem. SAN allows cooperation between respective storage subsystems without a dedicated intermediate server. The interfaces of SAN generally include SAS, SATA, SCSI, iSCSI, FICON/ESCON, and Fiber Channel (FC).
FIG. 1 schematically illustrates a block diagram of the architecture of SAN. According to FIG. 1, a plurality of host servers are coupled to a disk array through a Fiber Channel switch. The Fiber Channel coupling is a high bandwidth backbone to satisfy a sharing storage environment in SAN (connectors like a relay network possibly exist there between, which are not illustrated in FIG. 1). A Fiber Channel has become an industrial standard for SAN interfaces. In the Fiber Channel, a host bus adaptor (HBA) card is a physical connection device between an I/O channel inside a host server and an I/O channel of a storage system. The most common I/O channels inside a server are PCI series and Sbus, while an HBA card functions to convert data transfer from an internal channel protocol PCI or Sbus to a Fiber Channel protocol. With an HBA card inserted, a host server or storage server may be coupled to a disk supporting a Fiber Channel via a Fiber Channel switch. All communications are performed via the HBA card at the host server, the Fiber Channel switch, and a corresponding Fiber Channel port on the storage device. A port (N port) of the host server is generally coupled to a port (F port) of the Fiber Channel switch and the port (F port) of the Fiber Channel switch is coupled to a port (N port) of a storage device via Fiber Channel so as to form a physical data link. However, Fiber Channel protocol criteria allow one N port (N_Port) to obtain a plurality of FC IDs from a Fiber Channel fabric, such that it is possible to establish a plurality of independent logic data links between a node and a Fiber Channel switch. In SAN, servers at different platforms may access the same storage device or a plurality of storage devices. SAN enables storage devices not to be affiliated to a certain server any more, but to be directly connected to the network to form a storage area network, thereby improving the utilization efficiency of storage. Storage controllers of the storage subsystem in FIG. 1 control data transfer and access on the storage device and are generally divided into two parts: a front end and a back end. The front end of the storage controller is to communicate with a host, a Fiber Channel switch, or other device via one or more ports, while the back end is for inter-communication with the disk array under its management. To improve performance and reliability, a storage subsystem may have one or more storage controllers.
As illustrated in FIG. 1, each host server is coupled to the disk array via a single physical path; therefore, an error of single-point coupling failure may easily occur.
A multi-path input/output (MPIO) solution establishes a backup physical transfer path between a server and a storage device using redundancy components (an adaptor, a fiber cable, and a switch, etc.). If one or more of these components fail and cause the path to be unavailable, multi-path control software may leverage the backup path to guarantee the accessibility of an application to its data.
FIG. 2a illustrates a simplified diagram of the multi-path solution and a problem existing in this solution. In the solution, ports 1 and 2 on the HBA card of the host server are connected to ports 5 and 6 on the Fiber Channel switch, respectively, while ports 1 and 2 on the Fiber Channel switch are connected to port 1 on the HBA card and port 2 on the HBA card of the storage subsystem, respectively. Suppose port 1 on the HBA card of the host server inter-communicates with port 1 on the HBA card of the storage subsystem, port 2 on the HBA card of the host server inter-communicates with port 2 on the HBA card of the storage subsystem (generally, it is implemented via zones in a Fiber network management), and the host server comprises an MPIO module provided by a manufacturer. During the process of active/passive I/O data transfer, if there is a problem with primary path a, physical links still exist from port 1 on the HBA card of host server to port 5 and from port 1 of the Fiber Channel switch and to port 1 of the HBA card on the storage subsystem. The existing MPIO may also perform communication between the host server and the storage subsystem, thereby realizing enhanced storage redundancy and dynamic I/O load balance.
However, if there are problems with both primary path a and path b, then the existing MPIO module would be unable to handle this situation; as a result, the communication between the host server and the storage subsystem will be completely disconnected.
FIG. 2b illustrates another example of a problem existing in the multi-path solution. In this solution, port 1 and port 2 of the HBA at the host server are connected to port 5 and port 6 of the Fiber Channel fabric, respectively, and the host can only inter-communicate with port 1 of the HBA at the storage subsystem via port 1 of the Fiber Channel fabric. If there is a problem path a, the existing MPIO module would be unable to handle this situation; as a result, the communication between the host server and the storage subsystem will be completely disconnected.